package org.migsoft.id3lib.id3v1;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.nio.Buffer;import com.sun.org.apache.bcel.internal.generic.LUSHR;

public class Genre {
  public static final Genre BLUES = new Genre((byte)0, "Blues"); 
  public static final Genre CLASSIC_ROCK = new Genre((byte)1, "Classic Rock"); 
  public static final Genre COUNTRY = new Genre((byte)2, "Country"); 
  public static final Genre DANCE = new Genre((byte)3, "Dance"); 
  public static final Genre DISCO = new Genre((byte)4, "Disco"); 
  public static final Genre FUNK = new Genre((byte)5, "Funk"); 
  public static final Genre GRUNGE = new Genre((byte)6, "Grunge"); 
  public static final Genre HIP_HOP = new Genre((byte)7, "Hip-Hop"); 
  public static final Genre JAZZ = new Genre((byte)8, "Jazz"); 
  public static final Genre METAL = new Genre((byte)9, "Metal"); 
  public static final Genre NEW_AGE = new Genre((byte)10, "New Age"); 
  public static final Genre OLDIES = new Genre((byte)11, "Oldies"); 
  public static final Genre OTHER = new Genre((byte)12, "Other"); 
  public static final Genre POP = new Genre((byte)13, "Pop"); 
  public static final Genre R_N_B = new Genre((byte)14, "R&B"); 
  public static final Genre RAP = new Genre((byte)15, "Rap"); 
  public static final Genre REGGAE = new Genre((byte)16, "Reggae"); 
  public static final Genre ROCK = new Genre((byte)17, "Rock"); 
  public static final Genre TECHNO = new Genre((byte)18, "Techno"); 
  public static final Genre INDUSTRIAL = new Genre((byte)19, "Industrial"); 
  public static final Genre ALTERNATIVE = new Genre((byte)20, "Alternative"); 
  public static final Genre SKA = new Genre((byte)21, "Ska"); 
  public static final Genre DEATH_METAL = new Genre((byte)22, "Death Metal"); 
  public static final Genre PRANKS = new Genre((byte)23, "Pranks"); 
  public static final Genre SOUNDTRACK = new Genre((byte)24, "Soundtrack"); 
  public static final Genre EURO_TECHNO = new Genre((byte)25, "Euro-Techno"); 
  public static final Genre AMBIENT = new Genre((byte)26, "Ambient"); 
  public static final Genre TRIP_HOP = new Genre((byte)27, "Trip-Hop"); 
  public static final Genre VOCAL = new Genre((byte)28, "Vocal"); 
  public static final Genre JAZZ_FUNK = new Genre((byte)29, "Jazz+Funk"); 
  public static final Genre FUSION = new Genre((byte)30, "Fusion"); 
  public static final Genre TRANCE = new Genre((byte)31, "Trance"); 
  public static final Genre CLASSICAL = new Genre((byte)32, "Classical"); 
  public static final Genre INSTRUMENTAL = new Genre((byte)33, "Instrumental"); 
  public static final Genre ACID = new Genre((byte)34, "Acid"); 
  public static final Genre HOUSE = new Genre((byte)35, "House"); 
  public static final Genre GAME = new Genre((byte)36, "Game"); 
  public static final Genre SOUND_CLIP = new Genre((byte)37, "Sound Clip"); 
  public static final Genre GOSPEL = new Genre((byte)38, "Gospel"); 
  public static final Genre NOISE = new Genre((byte)39, "Noise"); 
  public static final Genre ALTERNROCK = new Genre((byte)40, "AlternRock"); 
  public static final Genre BASS = new Genre((byte)41, "Bass"); 
  public static final Genre SOUL = new Genre((byte)42, "Soul"); 
  public static final Genre PUNK = new Genre((byte)43, "Punk"); 
  public static final Genre SPACE = new Genre((byte)44, "Space"); 
  public static final Genre MEDITATIVE = new Genre((byte)45, "Meditative"); 
  public static final Genre INSTRUMENTAL_POP = new Genre((byte)46, "Instrumental Pop"); 
  public static final Genre INSTRUMENTAL_ROCK = new Genre((byte)47, "Instrumental Rock"); 
  public static final Genre ETHNIC = new Genre((byte)48, "Ethnic"); 
  public static final Genre GOTHIC = new Genre((byte)49, "Gothic"); 
  public static final Genre DARKWAVE = new Genre((byte)50, "Darkwave"); 
  public static final Genre TECHNO_INDUSTRIAL = new Genre((byte)51, "Techno-Industrial"); 
  public static final Genre ELECTRONIC = new Genre((byte)52, "Electronic"); 
  public static final Genre POP_FOLK = new Genre((byte)53, "Pop-Folk"); 
  public static final Genre EURODANCE = new Genre((byte)54, "Eurodance"); 
  public static final Genre DREAM = new Genre((byte)55, "Dream"); 
  public static final Genre SOUTHERN_ROCK = new Genre((byte)56, "Southern Rock"); 
  public static final Genre COMEDY = new Genre((byte)57, "Comedy"); 
  public static final Genre CULT = new Genre((byte)58, "Cult"); 
  public static final Genre GANGSTA = new Genre((byte)59, "Gangsta"); 
  public static final Genre TOP_40 = new Genre((byte)60, "Top 40"); 
  public static final Genre CHRISTIAN_RAP = new Genre((byte)61, "Christian Rap"); 
  public static final Genre POP_FUNK = new Genre((byte)62, "Pop/Funk"); 
  public static final Genre JUNGLE = new Genre((byte)63, "Jungle"); 
  public static final Genre NATIVE_AMERICAN = new Genre((byte)64, "Native American"); 
  public static final Genre CABARET = new Genre((byte)65, "Cabaret"); 
  public static final Genre NEW_WAVE = new Genre((byte)66, "New Wave"); 
  public static final Genre PSYCHADELIC = new Genre((byte)67, "Psychadelic"); 
  public static final Genre RAVE = new Genre((byte)68, "Rave"); 
  public static final Genre SHOWTUNES = new Genre((byte)69, "Showtunes"); 
  public static final Genre TRAILER = new Genre((byte)70, "Trailer"); 
  public static final Genre LO_FI = new Genre((byte)71, "Lo-Fi"); 
  public static final Genre TRIBAL = new Genre((byte)72, "Tribal"); 
  public static final Genre ACID_PUNK = new Genre((byte)73, "Acid Punk"); 
  public static final Genre ACID_JAZZ = new Genre((byte)74, "Acid Jazz"); 
  public static final Genre POLKA = new Genre((byte)75, "Polka"); 
  public static final Genre RETRO = new Genre((byte)76, "Retro"); 
  public static final Genre MUSICAL = new Genre((byte)77, "Musical"); 
  public static final Genre ROCK_N_ROLL = new Genre((byte)78, "Rock & Roll"); 
  public static final Genre HARD_ROCK = new Genre((byte)79, "Hard Rock"); 
  public static final Genre FOLK = new Genre((byte)80, "Folk"); 
  public static final Genre FOLK_ROCK = new Genre((byte)81, "Folk-Rock"); 
  public static final Genre NATIONAL_FOLK = new Genre((byte)82, "National Folk"); 
  public static final Genre SWING = new Genre((byte)83, "Swing"); 
  public static final Genre FAST_FUSION = new Genre((byte)84, "Fast Fusion"); 
  public static final Genre BEBOB = new Genre((byte)85, "Bebob"); 
  public static final Genre LATIN = new Genre((byte)86, "Latin"); 
  public static final Genre REVIVAL = new Genre((byte)87, "Revival"); 
  public static final Genre CELTIC = new Genre((byte)88, "Celtic"); 
  public static final Genre BLUEGRASS = new Genre((byte)89, "Bluegrass"); 
  public static final Genre AVANTGARDE = new Genre((byte)90, "Avantgarde"); 
  public static final Genre GOTHIC_ROCK = new Genre((byte)91, "Gothic Rock"); 
  public static final Genre PROGRESSIVE_ROCK = new Genre((byte)92, "Progressive Rock"); 
  public static final Genre PSYCHEDELIC_ROCK = new Genre((byte)93, "Psychedelic Rock"); 
  public static final Genre SYMPHONIC_ROCK = new Genre((byte)94, "Symphonic Rock"); 
  public static final Genre SLOW_ROCK = new Genre((byte)95, "Slow Rock"); 
  public static final Genre BIG_BAND = new Genre((byte)96, "Big Band"); 
  public static final Genre CHORUS = new Genre((byte)97, "Chorus"); 
  public static final Genre EASY_LISTENING = new Genre((byte)98, "Easy Listening"); 
  public static final Genre ACOUSTIC = new Genre((byte)99, "Acoustic"); 
  public static final Genre HUMOUR = new Genre((byte)100, "Humour"); 
  public static final Genre SPEECH = new Genre((byte)101, "Speech"); 
  public static final Genre CHANSON = new Genre((byte)102, "Chanson"); 
  public static final Genre OPERA = new Genre((byte)103, "Opera"); 
  public static final Genre CHAMBER_MUSIC = new Genre((byte)104, "Chamber Music"); 
  public static final Genre SONATA = new Genre((byte)105, "Sonata"); 
  public static final Genre SYMPHONY = new Genre((byte)106, "Symphony"); 
  public static final Genre BOOTY_BASS = new Genre((byte)107, "Booty Bass"); 
  public static final Genre PRIMUS = new Genre((byte)108, "Primus"); 
  public static final Genre PORN_GROOVE = new Genre((byte)109, "Porn Groove"); 
  public static final Genre SATIRE = new Genre((byte)110, "Satire"); 
  public static final Genre SLOW_JAM = new Genre((byte)111, "Slow Jam"); 
  public static final Genre CLUB = new Genre((byte)112, "Club"); 
  public static final Genre TANGO = new Genre((byte)113, "Tango"); 
  public static final Genre SAMBA = new Genre((byte)114, "Samba"); 
  public static final Genre FOLKLORE = new Genre((byte)115, "Folklore"); 
  public static final Genre BALLAD = new Genre((byte)116, "Ballad"); 
  public static final Genre POWER_BALLAD = new Genre((byte)117, "Power Ballad"); 
  public static final Genre RHYTHMIC_SOUL = new Genre((byte)118, "Rhythmic Soul"); 
  public static final Genre FREESTYLE = new Genre((byte)119, "Freestyle"); 
  public static final Genre DUET = new Genre((byte)120, "Duet"); 
  public static final Genre PUNK_ROCK = new Genre((byte)121, "Punk Rock"); 
  public static final Genre DRUM_SOLO = new Genre((byte)122, "Drum Solo"); 
  public static final Genre A_CAPELLA = new Genre((byte)123, "A capella"); 
  public static final Genre EURO_HOUSE = new Genre((byte)124, "Euro-House"); 
  public static final Genre DANCE_HALL = new Genre((byte)125, "Dance Hall"); 
  public static final Genre[] GENRES = new Genre[] {
        BLUES,
        CLASSIC_ROCK,
        COUNTRY,
        DANCE,
        DISCO,
        FUNK,
        GRUNGE,
        HIP_HOP,
        JAZZ,
        METAL,
        NEW_AGE,
        OLDIES,
        OTHER,
        POP,
        R_N_B,
        RAP,
        REGGAE,
        ROCK,
        TECHNO,
        INDUSTRIAL,
        ALTERNATIVE,
        SKA,
        DEATH_METAL,
        PRANKS,
        SOUNDTRACK,
        EURO_TECHNO,
        AMBIENT,
        TRIP_HOP,
        VOCAL,
        JAZZ_FUNK,
        FUSION,
        TRANCE,
        CLASSICAL,
        INSTRUMENTAL,
        ACID,
        HOUSE,
        GAME,
        SOUND_CLIP,
        GOSPEL,
        NOISE,
        ALTERNROCK,
        BASS,
        SOUL,
        PUNK,
        SPACE,
        MEDITATIVE,
        INSTRUMENTAL_POP,
        INSTRUMENTAL_ROCK,
        ETHNIC,
        GOTHIC,
        DARKWAVE,
        TECHNO_INDUSTRIAL,
        ELECTRONIC,
        POP_FOLK,
        EURODANCE,
        DREAM,
        SOUTHERN_ROCK,
        COMEDY,
        CULT,
        GANGSTA,
        TOP_40,
        CHRISTIAN_RAP,
        POP_FUNK,
        JUNGLE,
        NATIVE_AMERICAN,
        CABARET,
        NEW_WAVE,
        PSYCHADELIC,
        RAVE,
        SHOWTUNES,
        TRAILER,
        LO_FI,
        TRIBAL,
        ACID_PUNK,
        ACID_JAZZ,
        POLKA,
        RETRO,
        MUSICAL,
        ROCK_N_ROLL,
        HARD_ROCK,
        FOLK,
        FOLK_ROCK,
        NATIONAL_FOLK,
        SWING,
        FAST_FUSION,
        BEBOB,
        LATIN,
        REVIVAL,
        CELTIC,
        BLUEGRASS,
        AVANTGARDE,
        GOTHIC_ROCK,
        PROGRESSIVE_ROCK,
        PSYCHEDELIC_ROCK,
        SYMPHONIC_ROCK,
        SLOW_ROCK,
        BIG_BAND,
        CHORUS,
        EASY_LISTENING,
        ACOUSTIC,
        HUMOUR,
        SPEECH,
        CHANSON,
        OPERA,
        CHAMBER_MUSIC,
        SONATA,
        SYMPHONY,
        BOOTY_BASS,
        PRIMUS,
        PORN_GROOVE,
        SATIRE,
        SLOW_JAM,
        CLUB,
        TANGO,
        SAMBA,
        FOLKLORE,
        BALLAD,
        POWER_BALLAD,
        RHYTHMIC_SOUL,
        FREESTYLE,
        DUET,
        PUNK_ROCK,
        DRUM_SOLO,
        A_CAPELLA,
        EURO_HOUSE,
        DANCE_HALL,
  };

  
  private byte code;
  private String title;

  private Genre(byte code, String title) {
    super();
    this.code = code;
    this.title = title;
  }

  public byte getCode() {
    return code;
  }

  public String getTitle() {
    return title;
  }

  
  
//  public static void main(String[] args) throws IOException {
//    String[] names = new String[126];
//    BufferedReader reader = new BufferedReader(new FileReader("genre.txt"));
//    String line;
//    while((line = reader.readLine())!=null){
//      int indexOf = line.indexOf('=');
//      names[new Integer(line.substring(0, indexOf))] = line.substring(indexOf + 1);
//      
//    }
//    reader.close();
//    for(int i = 0; i < names.length; i++) {
//      System.out.format("public static final Genre %s = new Genre((byte)%d, \"%s\"); \n", convers(names, i), i, names[i]);
//    }
//    System.out.format("public static final Genre[] GENRES = new Genre{\n");
//    for(int i = 0; i < names.length; i++) {
//      System.out.println(convers(names, i) + ",");
//    }
//    System.out.format("};\n");
//  }
//
//  private static String convers(String[] names, int i) {
//    return names[i].toUpperCase().replace(' ', '_').replace('-', '_');
//  }
}
